ActiveAdmin.register User do
  # 用来定义哪些字段参数将会被改变,如果其中包含数组,你可以用这种方式 attributes: [:id, :name, :description, :_destroy]
  permit_params :name, :email

  # 该model属于哪一个列表项中
  menu parent: 'Users'

  # 默认会提供增删改查的功能,如果你不需要的话,请except掉它
  actions :all, except: [:edit]

  # 如果你想禁用这个model的filter,可以这样设置.但同时你要确定你的这个model并没有出现你自己设置的filter,否则会报错
  # config.filters = false

  # label相当于更改字段显示的名字
  filter :email, label: 'some email'

  # 就像controller的scope一样,只是写法上稍微有点不同
  scope :all, default: true
  scope('Boy')  { |scope| scope.where(gender: true) }
  scope('Girl') { |scope| scope.where(gender: false) }

  # 按名字排序
  config.sort_order = 'name_asc'
  # 每页显示数据的数量
  config.per_page = 10
  # 你也可以取消分页
  # config.paginate = false

  # 你可以设置是否显示下载链接
  # index download_links: false
  # 你可以设置下载链接类型
  index download_links: [:csv]

  index do
    selectable_column
    id_column
    column :name
    column :email
    column :created_at
    column :gender
    actions
  end

  # 批量操作的方法(具体怎么用还需要研究)
  batch_action :name, false

  # 相当于controller文件里的方法
  # controller do
  #   def create
  #     @user = User.new(permitted_params[:user])
  #     render json: { message: 'success' } if @user.save
  #   end
  # end

  # belongs_to 没搞懂
  # sidebar 'User Articles' , only: [:show] do
  #   ul do
  #     li link_to 'Photos',    admin_user_photos_path(user)
  #     li link_to 'Moneys',    admin_user_money_index_path(user)
  #     li link_to 'Articles',  admin_user_articles_path(user)
  #   end
  # end
end

# ActiveAdmin.register Photo do
#   # 和其他model的关系
#   belongs_to :user

#   navigation_menu :user

#   controller do
#     def index
#       @photo = Photo.all
#     end
#   end
# end

# ActiveAdmin.register Money do
#   # 和其他model的关系
#   belongs_to :user

#   navigation_menu :user
# end
